﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ImobitechModel.com.Controller;
using ImobitechModel.com.Constantes;

namespace Imobitech.Anuncio
{
    public partial class Detalhes : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ControladorAnuncio cg = new ControladorAnuncio();

                int id = Request.QueryString["id"] != null ? int.Parse(Request.QueryString["id"].ToString()) : 0;
                IDictionary<string, string> values = (Dictionary<string, string>)cg.buscaAnuncio(id);

                lblEndereco.Text = values.First(p => p.Key == NomeCampoConstantes.campo_ImovelEndereco).Value;
                lblComplemento.Text = values.First(p => p.Key == NomeCampoConstantes.campo_ImovelComplemento).Value;
                lblCidade.Text = values.First(p => p.Key == NomeCampoConstantes.campo_ImovelCidade).Value;
                lblBairro.Text = values.First(p => p.Key == NomeCampoConstantes.campo_ImovelBairro).Value;
                lblTotal.Text = values.First(p => p.Key == NomeCampoConstantes.campo_ImovelAreaTotal).Value;
                lblPrivada.Text = values.First(p => p.Key == NomeCampoConstantes.campo_ImovelAreaPrivada).Value;
                lblReferencia.Text = values.First(p => p.Key == NomeCampoConstantes.campo_ImovelReferencia).Value;
                lblQuartos.Text = values.First(p => p.Key == NomeCampoConstantes.campo_ImovelQuartos).Value;
                lblSuite.Text = values.First(p => p.Key == NomeCampoConstantes.campo_ImovelQuartosSuite).Value;
                lblGaragem.Text = values.First(p => p.Key == NomeCampoConstantes.campo_ImovelNumeroGaragem).Value;
                lblValor.Text = values.First(p => p.Key == NomeCampoConstantes.campo_AnuncioValor).Value;
                lblTipoImovel.Text = values.First(p => p.Key == NomeCampoConstantes.campo_TipoImovelDescricao).Value;
                lblDescricao.Text = values.First(p => p.Key == NomeCampoConstantes.campo_AnuncioDescricao).Value;
                hdfId.Value = id.ToString();
                rptImagens.DataSource = (List<Tuple<int, string, string>>)cg.buscaFotoAnuncio(id);
                rptImagens.DataBind();

                botoes.Visible = false;
                sucesso.Visible = false;
                error.Visible = false;
                if (Session["login"] != null)
                {
                    botoes.Visible = true;
                }

            }
        }

        protected void btnVisita_Click(object sender, EventArgs e)
        {
            if (Session["login"] != null)
            {
                Logar logar = (Logar)Session["login"];
                IDictionary<string, string> values = new Dictionary<string, string>();
                values.Add(NomeCampoConstantes.campo_AnuncioId, hdfId.Value);
                values.Add(NomeCampoConstantes.campo_AnuncioDataVisita, txtData.Text + " " + txtHora.Text);
                values.Add(NomeCampoConstantes.campo_pessoaId, logar.idPessoa.ToString());

                ControladorAnuncio cg = new ControladorAnuncio();
                bool retorno = (bool)cg.marcarHorario(values);
                if (retorno)
                {
                    sucesso.InnerHtml = "<span>Marcado com sucesso</span>";
                    sucesso.Visible = true;
                }
                else
                {
                    error.InnerHtml = "<span>Erro ao marcar</span>";
                    error.Visible = true;
                }
            }
        }

        protected void btnCandidatar_Click(object sender, EventArgs e)
        {
            if (Session["login"] != null)
            {
                Logar logar = (Logar)Session["login"];
                IDictionary<string, string> values = new Dictionary<string, string>();
                values.Add(NomeCampoConstantes.campo_AnuncioId, hdfId.Value);
                values.Add(NomeCampoConstantes.campo_pessoaId, logar.idPessoa.ToString());

                ControladorAnuncio cg = new ControladorAnuncio();
                bool retorno = (bool)cg.candidatar(values);
                if (retorno)
                {
                    sucesso.InnerHtml = "<span>Marcado a sua candidatura com sucesso</span>";
                    sucesso.Visible = true;
                }
                else
                {
                    error.InnerHtml = "<span>Erro ao marcar a candidatura</span>";
                    error.Visible = true;
                }
            }
        }
    }
}